package com.whfc.hdc.service;

import com.whfc.hdc.dto.AlgDeviceConfigDetailDTO;
import com.whfc.hdc.dto.AlgDeviceStreamConfigDTO;
import com.whfc.hdc.dto.AlgDeviceStreamDTO;
import com.whfc.hdc.params.AlgDeviceStreamConfigAddParam;
import com.whfc.hdc.params.AlgDeviceStreamConfigEditParam;
import com.whfc.hdc.params.AlgDeviceStreamParam;

import java.util.List;

/**
 * @author qzexing
 * @version 1.0
 * @date 2021-08-02 15:24
 */
public interface AlgDeviceStreamService {


    /**
     * 获取算法盒子视频流地址列表
     *
     * @param sn 设备SN
     * @return 视频流地址列表
     */
    List<AlgDeviceStreamDTO> list(String sn);

    /**
     * 新增算法盒子视频流地址
     *
     * @param param 参数
     */
    void add(AlgDeviceStreamParam param);

    /**
     * 编辑算法盒子视频流地址
     *
     * @param param 参数
     */
    void edit(AlgDeviceStreamParam param);

    /**
     * 删除算法盒子视频流地址
     *
     * @param streamId 视频流ID
     */
    void del(Integer streamId);

    /**
     * 获取算法盒子视频流算法配置列表
     *
     * @param streamId 视频流ID
     * @return 算法配置列表
     */
    List<AlgDeviceStreamConfigDTO> configList(Integer streamId);

    /**
     * 新增算法盒子视频流算法配置
     *
     * @param param 参数
     */
    void configAdd(AlgDeviceStreamConfigAddParam param);

    /**
     * 编辑算法盒子视频流算法配置
     *
     * @param param 参数
     */
    void configEdit(AlgDeviceStreamConfigEditParam param);

    /**
     * 删除算法盒子视频流算法配置
     *
     * @param id 算法配置ID
     */
    void configDel(Integer id);

    /**
     * 获取设备配置详情
     *
     * @param sn
     * @return 配置详情
     */
    AlgDeviceConfigDetailDTO getDeviceStreamConfigDetail(String sn);

}
